Many computer programs operate in conjunction with a display terminal to provide information to the user of the computer program concerning the operation of the computer program and to query the user for input of information. For example, Basic Input/Output System (BIOS) software is used in many computer systems to initialize operation of the computer system when it is either powered on or is reset. The BIOS software typically performs a power on system test (POST) that checks the status of components of the computer system to determine whether certain peripherals are installed. The BIOS software also ascertains the amount of memory resources the computer system has, performs diagnostic testing on the computer components and peripherals, and installs drivers for interacting with the peripherals. Further, the BIOS software also includes a setup mode that allows the user to alter the configuration of some of the parameters of the BIOS software.
Importantly, during POST, as the BIOS software initializes the components and peripherals and performs system checks, information concerning these operations is displayed to the user. This information allows the user or computer support personnel to determine whether all of the computer components and peripherals are properly installed and whether there are errors associated with these components and peripherals. Further, in the setup mode, the parameters of the BIOS software are displayed to the user so that the user may confirm or alter these parameters. Additionally, the BIOS software may display logos associated with the developer of the BIOS software and/or the owner of the computer system. Further, the BIOS software may display progress bars and boxes.
In conventional computer programs, such as BIOS software, the text and graphical data used for displaying information on the display terminal is typically located within the source code of the computer program. For example, text information for displaying text data strings on the display terminal is typically embedded in the source code. Further, graphical data for logos and progress bars is also embedded in the source code. The location of the text and graphical information in the source code is problematic for many reasons.
For instance, the addition of the text and graphical data in the source code increases the overall size of the code. The display of text and graphical data requires not only the character codes for the data but also font, color, and various other attributes associated with the format in which the data is displayed.
Further, and more importantly, the embedding of the text and graphical data in the source code makes updating of the text and graphics displayed by the computer program much more difficult. For example, an important limitation to the export of most computer systems and computer programs to other countries is the translation of the outputs displayed to the user in a language that is understandable to the user of the computer system or computer program. As many software programs embed the textual and graphical information in the source code of the computer program, to modify the program to display the information in the proper language for the user, the source code must be reprogrammed with the appropriate text and graphics and recompiled. Additionally, besides the effort of rewriting the source code, multiple copies of the modified source code must be maintained for each of the languages that the source code has been rewritten. This becomes burdensome as updates to the source code must be performed for each language version of the source code, and each version of the source code must be maintained in storage. For large-scale systems involving millions of lines of code and modules, the maintenance, updating, and storage requirements for all of the different language versions of the code may be enormous.
An additional problem is that computer programs, such as BIOS software, typically display graphical information such as boxes, progress bars, and logos. The code for these graphics is also typically embedded in the source code. As such, changes to the graphic displays or logos also require rewriting of the source code. This creates problems for customization of the output displays. Specifically, it may be advantageous to display different graphics for different customers. For example, some customers may wish to include their logos in the display as the computer program operates.
Similarly, the language data is typically embedded in the source code of the computer program along with a specific font for displaying the text. As such, desired changes of the font of either particular text or all of the text in the source code requires reprogramming and recompiling of the source code.
In addition to the problems associated embedding the text and graphical data in the source code of the program is the added problem that some languages use graphical characters, as opposed to ASCII characters. The Asian language of Kanji, for example, includes graphical characters that require a double byte character set (DBCS) for display. These graphical characters are typically data storage intensive. As such, embedding DBCS characters and their associated font data in the source code of the computer program can dramatically increase the overall size of the program.
In addition to the problems associated with storage and accessibility of text and graphical data, there are also problems associated with redirection of displayed information to a remote display. Specifically, there are many applications in which it is advantageous to redirect the displayed information to a terminal other than the terminal associated with the computer system. Additionally, in some instances, it is advantages to redirect the display to a different location such that the user may interact with the computer without requiring the user to be physically located proximate to the computer system.
Although display redirection is advantageous, there are some drawbacks. Specifically, the communication link between the computer system and the remote display may be any of a number of different mechanisms. For example, the communication link may be either a serial port, parallel port, network port, etc. In light of this, many conventional computer programs are programmed to include the proper protocol for transmitting the information to the remote display using one of these data communication formats. As such, there must be either separate versions of the program each having code embedded in the source code or different modules embedded in the source code for transmitting the information in the proper communication format. As such, changes in the code for transmitting the display information must be implemented by altering the source code associated with the program, which can again become burdensome.